iT邦幫忙

2025 iThome 鐵人賽

DAY 13
2
生成式 AI

AI 給我錢錢錢 ! AI 股神養成計劃系列 第 13

Day 13: 整合分析:基本面 + 技術面 + AI 一次打包

  • 分享至 

  • xImage
  •  

在前幾天的學習中,我們已經分別嘗試過 基本面數據的解析(例如財報、新聞)、 技術指標的解讀(如 RSI、MA),並且讓 AI 來幫我們轉換成白話。今天,我們要做的是 真正的整合 —— 讓這些元素不再是分散的單點,而是能夠在一個流程裡,彼此呼應、補強不足。

流程模組

  1. 新聞即時分析(基本面訊息)
  • 使用 NWSAPI 抓取 Yahoo Finance 或 Google News 的即時新聞。

  • 整理標題與摘要後,送進 Gemini API,請 AI 幫忙解讀新聞可能對股價的影響。

  1. 技術指標分析(技術面數據)
  • 透過 yfinance 取得股價歷史資料。

  • 計算常見指標(RSI、MA)。

  • 輸出一份簡單的技術面觀察,例如「RSI 偏高,短線過熱」、「MA 呈現黃金交叉」。

  1. AI 綜合解讀(策略結論)
  • 基本面解讀 + 技術面觀察 一起丟給 Gemini,請它幫我們做出「整合性分析」。

  • AI 會產生一份「類似投資建議」的文字,像是「短期可能震盪,但中期基本面支撐仍佳」。

實作

python
# 安裝必要套件
!pip install -q yfinance pandas ta requests google-generativeai

import requests
import pandas as pd
import yfinance as yf
import ta
import google.generativeai as genai

# === 設定 Gemini API ===
genai.configure(api_key="YOUR_GEMINI_API_KEY")  # 改成你的 API Key
model = genai.GenerativeModel("gemini-1.5-flash")

# === Step 1: 取得即時新聞 (NewsAPI) ===
NEWS_API_KEY = "YOUR_NEWSAPI_KEY"  # 改成你的 NewsAPI Key
symbol = "AAPL"  # 股票代碼

url = f"https://newsapi.org/v2/everything?q={symbol}&apiKey={NEWS_API_KEY}"
response = requests.get(url).json()
articles = response.get("articles", [])[:3]  # 取前三則新聞

news_summary = "\n".join([f"- {a['title']} ({a['source']['name']})" for a in articles])

# === Step 2: 技術指標分析 ===
data = yf.download(symbol, period="3mo", interval="1d", auto_adjust=True)

# 確保 Close 是 1D Series
close_prices = data["Close"].squeeze()

# RSI (14日)
rsi_indicator = ta.momentum.RSIIndicator(close=close_prices, window=14)
data["RSI"] = rsi_indicator.rsi()

# 20日移動平均線
data["MA20"] = data["Close"].rolling(20).mean()

# 取最後一天指標並轉 float
latest_close = float(data["Close"].iloc[-1])
latest_rsi = float(data["RSI"].dropna().iloc[-1])
latest_ma = float(data["MA20"].dropna().iloc[-1])

tech_summary = f"""
最新收盤價:{latest_close:.2f}
RSI:{latest_rsi:.2f} ({'過熱' if latest_rsi>70 else '偏低' if latest_rsi<30 else '中性'})
MA20:{latest_ma:.2f} ({'股價在均線之上' if latest_close>latest_ma else '股價在均線之下'})
"""

# === Step 3: AI 綜合解讀 ===
prompt = f"""
以下是關於 {symbol} 的最新市場資訊:

新聞摘要:
{news_summary}

技術分析:
{tech_summary}

請綜合以上資訊,給我一份整體投資解讀(白話、200字內)。
"""

analysis = model.generate_content(prompt)

# === 輸出區塊 ===
print("=== 最新新聞摘要 ===")
print(news_summary if news_summary else "(無最新新聞)")

print("\n=== 技術指標分析 ===")
print(tech_summary)

print("\n=== AI 綜合解讀 ===")
print(analysis.text)

執行結果

https://ithelp.ithome.com.tw/upload/images/20250826/20169444RfUTfXu22V.png
可以看到清楚呈現了三段輸出:最新新聞摘要、技術指標分析、AI 綜合解讀

結語

  • 學會 新聞(基本面)+ 技術指標(技術面)+ AI 解讀 的完整流程。

  • 這樣的組合,可以讓我們不只是單看數據,而是把 資訊串起來,更接近真實投資決策的思考方式。

投資世界裡,沒有單一的面向能解釋一切。新聞能帶來情緒與趨勢,技術指標能揭示市場狀態,而 AI 則幫助我們消化龐大的資訊量,化繁為簡。透過今天的整合,我們已經踏出打造「AI 輔助投資系統」的關鍵一步。

👉 明天(Day 14),我們將把今天的成果進一步整理成一份自動化 AI 報告,在終端機中一鍵生成專屬的投資分析! 🚀


上一篇
Day 12 : 新聞與輿情分析:AI 幫你讀懂市場情緒
下一篇
Day 14 :打造第一份 AI 投資報告(終端機版展示)
系列文
AI 給我錢錢錢 ! AI 股神養成計劃20
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言